package com.lyf.scm.admin.domain.service;

import com.lyf.scm.admin.api.dto.*;
import com.lyf.scm.common.model.ExcelExportDTO;
import com.lyf.scm.common.model.SalesPlanSelectDTO;
import java.util.List;

/**
 * description:
 *        需求计划
 * @author: 李兵兵
 * @data: 2020/8/7 17:25
 */
public interface DemandPlanService {

/**
     * 按条件查询需求计划
     * @param demandPlan
     * @return
     */
    PlanResponseDTO<SalesPlanInfoDTO> listWeekBySelective(SalesPlanDTO demandPlan);


    /**
     * 查询出需求计划柱状图的指标数据
     * @param salesPlanDTO 需求计划
     * @return {@link EChartsDTO}
     */
    EChartsDTO listAllByCycles(SalesPlanDTO salesPlanDTO);

    /**
     * 保存导出操作日志
     * @author wuyuanhang
     * @date 2020/11/16
     * @return  OperationLogRecordDTO 操作日志对象
     * @param type
     */
    OperationLogRecordDTO saveOperatorLog(Integer type);

    /**
     * 异步导出Excel方法
     * @author wuyuanhang
     * @date 2020/11/16
     * @param operationLogRecordDTO     操作日志对象
     * @param excelExportDTO            查询过滤条件
     * @param type                      导出类型-1导出当前页-2导出选中数据-3导出所有数据
     * @param channelPermissionList     渠道权限
     * @param channelPermissionList     区域权限
     */
    void createExportFile(OperationLogRecordDTO operationLogRecordDTO, ExcelExportDTO excelExportDTO, Integer type, List<String> channelPermissionList, List<SalesPlanSelectDTO> areaPermissionList, Long userId);
}
